<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>逻辑运算符</title>
    <script>
        /* 
            ! 逻辑非
                - ! 可以用来对一个值进行非运算
                - 它可以对一个布尔值进行取反操作
                    true --> false
                    false --> true
                - 如果对一个非布尔值进行取反，它会先将其转换为布尔值然后再取反
                    可以利用这个特点将其他类型转换为布尔值

                - 类型转换
                    转换为字符串
                        显式转换
                            String()
                        隐式转换
                            + ""
                    转换为数值
                        显式转换
                            Number()
                        隐式转换
                            +
                    转换为布尔值
                        显式转换
                            Boolean()
                        隐式转换
                            !!

            && 逻辑与
            || 逻辑或
        */

        let a = true

        a = !a

        // console.log(a)
        
        a = 123

        a = !!a

        console.log(typeof a, a)
        

    </script>
</head>
<body>
    
</body>
</html>